]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
MessageTray: don't clear the banner text when adding to the body
authorGiovanni Campagna <gcampagna@src.gnome.org>
Thu, 14 Feb 2013 16:12:26 +0000 (17:12 +0100)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 17 Feb 2013 13:53:41 +0000 (14:53 +0100)
ScreenShield uses Notification.bannerBodyText to fill the body of detailed
notifications, so use a separate boolean property to indicate it was already
added to the body.

https://bugzilla.gnome.org/show_bug.cgi?id=693822

js/ui/messageTray.js

index 4c8c13325cfc0d8b43b46ff4ac303237eaa69c58..f87848110e766778cc6713c5bd128bd6c1d8c321 100644 (file)
@@ -359,6 +359,7 @@ const Notification = new Lang.Class({
         this._customContent = false;
         this.bannerBodyText = null;
         this.bannerBodyMarkup = false;
+        this._bannerBodyAdded = false;
         this._titleFitsInBannerMode = true;
         this._titleDirection = Clutter.TextDirection.DEFAULT;
         this._spacing = 0;
@@ -521,6 +522,7 @@ const Notification = new Lang.Class({
         // not fitting fully in the single-line mode.
         this.bannerBodyText = this._customContent ? null : banner;
         this.bannerBodyMarkup = params.bannerMarkup;
+        this._bannerBodyAdded = false;
 
         banner = banner ? banner.replace(/\n/g, '  ') : '';
 
@@ -602,10 +604,9 @@ const Notification = new Lang.Class({
     },
 
     _addBannerBody: function() {
-        if (this.bannerBodyText) {
-            let text = this.bannerBodyText;
-            this.bannerBodyText = null;
-            this.addBody(text, this.bannerBodyMarkup);
+        if (this.bannerBodyText && !this._bannerBodyAdded) {
+            this._bannerBodyAdded = true;
+            this.addBody(this.bannerBodyText, this.bannerBodyMarkup);
         }
     },
 
@@ -897,7 +898,7 @@ const Notification = new Lang.Class({
     },
 
     _canExpandContent: function() {
-        return this.bannerBodyText ||
+        return (this.bannerBodyText && !this._bannerBodyAdded) ||
                (!this._titleFitsInBannerMode && !this._table.has_style_class_name('multi-line-notification'));
     },